﻿using System;
using System.Collections.Generic;
using Tanmia.Basis.Core;
using Tanmia.Basis.Security;

namespace Tanmia.Basis.Domain
{
    public abstract class SecurityDomain<TCore> : AuditDomain<TCore>
        where TCore : BaseBusinessObject
    {
        protected IAuthorizationService AuthorizationService { get; set; }

        public override void Save(TCore entity)
        {
            base.Save(entity);
        }

        public override void Delete(TCore entity)
        {
            base.Delete(entity);
        }

        public override TCore Get(int entityID)
        {
            return base.Get(entityID);
        }

        public override IList<TCore> Gets()
        {
            return base.Gets();
        }

        public override IList<TCore> Gets(Specification<TCore> specs)
        {
            return base.Gets(specs);
        }

        public override IList<TCore> Gets(System.Linq.Expressions.Expression<Func<TCore, bool>> satisfy)
        {
            return base.Gets(satisfy);
        }
    }
}